iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
AI & Data

AI白話文運動系列之「A!給我那張Image!」系列 第 11

唧唧復唧唧--AI中的機率統計之生成模型(Generative model)與判別模型(Discriminative model)

  • 分享至 

  • xImage
  •  

前言

在之前的系列中,我們介紹了微積分這個工具在AI模型當中的應用,也介紹了兩種AI模型架構:MLP與CNN。為了之後可以討論更多不同的AI模型,今天我們要來談談另外一個在AI中很重要的數學領域:機率與統計。

先備知識

  1. 高中機率(不是必須,不過如果了解的話對於吸收今天的內容有幫助)

看完今天的內容你可能會知道......

  1. AI中哪裡使用到機率
  2. 生成模型與判別模型是甚麼
  3. 生成模型與判別模型有何不同

一、機率統計入門

  • 機率與統計是數學中的兩大領域,裡面的概念比起先前討論過的微積分來說又更加抽象,因此我們今天只會討論那些基礎中的基礎,可是卻又非常重要與實用的部分。

    1. 概述

    • 在往下討論之前,我們先來聊聊「集合(Set)」,想像一下,你今天要去超市買菜,你有可能買肉、買水果、買罐頭、買湯底、買火鍋料...等等,如果在出發前把這些東西全部記錄下來,列成清單,這就是一個集合,裡面的內個元素就是你要買的東西。或者,今天你和朋友在用撲克牌玩比大小,那麼你的牌面只會是1到13這個範圍,不會出現14或23之類的數字,這時候(1, 2, 3, ...,13)就是你撲克牌點數的集合。簡單來說,只要你能用某種規則將不同的元素整合/歸納在一起,這些元素所形成的這個整體就被稱為是「集合」。

    2. 基礎機率

    • 有了「集合」的概念後,我們就可以接著談談何謂機率了,大家最常看到的機率應該就是天氣預報了吧!如果今天預報說有70%的機率會下雨,這代表甚麼?這表示說,我們有一個集合:(下雨,不下雨),當我們從這個集合中挑出一個元素時,100次中有70次會挑出「下雨」這個選項。或是也可以想成我們的集合裡面有70個「下雨」以及30的「不下雨」的選項,所以從裡面隨便挑一個出來是下雨的機率就是70%。
    • 從上面的例子我們似乎可以觀察出一件事:機率等於某種特定目標的元素總數除以總體的元素個數,用數學表示就是https://chart.googleapis.com/chart?cht=tx&chl=P(A)%20%3D%20%5Cfrac%7BNumber%5C%20of%5C%20favorable%5C%20outcomes%7D%7BTotal%5C%20number%5C%20of%5C%20outcomes%7D。當然,還有別的更嚴謹的方式來定義機率,不過作為初學者的我們只需要牢記這個概念就行了。

二、生成模型(Generative model)與判別模型(Discriminative model)

  • 最近因為Diffusion model與chatGPT的爆紅,讓「生成模型(Generative model)」這個概念出現在大眾面前,與這個概念相對的是「判別模型(Discriminative model)」,這兩種模型分別有甚麼作用,具體上又有哪些不同,就讓我們接著來討論看看。

    1. 判別模型(Discriminative model)

    • 在談論甚麼是判別模型之前,我們要先認識一個概念:條件機率。
    • 生活中我們會遇到一個很常見的情況:如果已經有了某種條件,發生某件事情的機率是多少?這種情況我們就需要使用「條件機率」的概念來描述,數學上的公式是這樣的https://chart.googleapis.com/chart?cht=tx&chl=P(A%7CB)%20%3D%20%5Cfrac%7BP(A%20%5Ccap%20B)%7D%7BP(B)%7D,分子的部份表示A跟B兩個事件同時發生的機率,分母則是條件B出現的機率,有了這兩個可以得出「在B條件下A發生的機率」。
    • 為甚麼我們會需要使用條件機率呢?我們可以先稍微回想一下,如果我要設計一個貓狗分類系統,我最終的目標是想要得到甚麼?應該是給定某張圖片時,在某個類別中的機率是多少,舉例來說就是給定義張貓咪的圖片之後,我希望可以知道,這張圖片是狗的機率以及這張圖片是貓的機率。用數學來描述就會是https://chart.googleapis.com/chart?cht=tx&chl=P(Cat%7CInputimage)以及https://chart.googleapis.com/chart?cht=tx&chl=P(Dog%7CInputimage)這兩個機率,這就是剛剛介紹到的條件機率。所以,所謂的分類系統,其實就是在計算輸入圖片跟所有類別的條件機率。
    • 判別模型延續了這樣的想法,在模型訓練的過程中,會「直接」學習https://chart.googleapis.com/chart?cht=tx&chl=P(A%7CB) 本身,也就是在給定一張輸入影像之後,他產生出來的所有類別的機率中,應該是在我預期的特定類別中有最高的機率。比如,輸入一張貓咪圖,他會產生https://chart.googleapis.com/chart?cht=tx&chl=P(Cat%7CInputimage)以及https://chart.googleapis.com/chart?cht=tx&chl=P(Dog%7CInputimage),其中https://chart.googleapis.com/chart?cht=tx&chl=P(Cat%7CInputimage)應該要比https://chart.googleapis.com/chart?cht=tx&chl=P(Dog%7CInputimage)來的大。
    • 為甚麼這邊要強調「直接」學習條件機率本身呢?因為下面我們要介紹的生成模型就是用另外一個角度來處理這樣的問題。

    2. 生成模型(Generative model)

三、總結

  • 在今天的內容中,我們花了一些篇幅介紹了機率的概念,並且說明機率的概念可以被應用在AI中的哪些部分(基本上可以說到處都是,畢竟現有的模型可以說是生成模型跟判別模型二選一),不過,今天似乎沒有看到甚麼統計的觀念,這部份我們會留到後面跟相關的內容一起介紹!

上一篇
Pytorch實戰(三)--建立與訓練模型--以簡單CNN模型為例
下一篇
番外篇—AI模型怎麼學得好?欠擬合(Underfitting)與過擬合(Overfitting)
系列文
AI白話文運動系列之「A!給我那張Image!」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言